<?php


class Ingresso_model extends CI_Model
{
    private $nro;
    private $lote;
    private $ordem;
    private $retirado;


    public function  __construct($id = null, $id_lote = null)
    {
	parent::__construct();

	if ($id != null AND $id_lote != null)
	{
	    $busca = array( 'nro_ingresso'  => $id,
			    'id_lote'	    => $id_lote
		);

	    $query = $this->db->get_where('ingresso', $busca);
	    
	    if ($query->num_rows() == 1) {
		$tmp = $query->row();
		
		$this->set_nro((int)$tmp->nro_ingresso);
		$this->set_retirado($tmp->retirado);

		require_once APPPATH . 'models/lote_model.php';
		$this->set_lote(new Lote_model($tmp->id_lote));

		if ($tmp->id_ordem != null)
		{
		    require_once APPPATH . 'models/ordem_model.php';
		    $this->set_ordem(new Ordem_model($tmp->id_ordem));
		}
		

	    } else {
		exit('Erro. Não foi possível criar a classe Ingresso_model');
	    }
	}
    }

    public function create()
    {
	$dados = array( 'id_lote'	=> $this->get_lote()->get_id(),
			'nro_ingresso'	=> $this->get_nro(),
			'retirado'	=> 0
		);

	$this->db->insert('ingresso', $dados);
    }

    public function vender()
    {
	$this->db->where('nro_ingresso', $this->get_nro());
	$this->db->where('id_lote', $this->get_lote()->get_id());

	$dados = array('id_ordem' => $this->get_ordem()->get_id());
	$this->db->update('ingresso', $dados);
    }

    public function get_nro() {
	return $this->nro;
    }

    public function set_nro($n) {
	$this->nro = $n;
    }

    public function get_lote() {
	return $this->lote;
    }

    public function set_lote(Lote_model $l) {
	$this->lote = $l;
    }

    public function get_ordem() {
	return $this->ordem;
    }

    public function set_ordem(Ordem_model $o) {
	$this->ordem = $o;
    }

    public function get_retirado() {
	return $this->retirado;
    }

    public function set_retirado($r) {
	$this->retirado = $r;
    }
}